home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / ewl / ewl_attach.h next >
C/C++ Source or Header  |  2006-01-09  |  2KB  |  92 lines

  1. #ifndef EWL_ATTACH_H
  2. #define EWL_ATTACH_H
  3.  
  4. /**
  5.  * @file ewl_attach.h
  6.  * @defgroup Ewl_Attach Attachments: The attachment mechanisms
  7.  * Defines methods for attaching data to widgets
  8.  *
  9.  * @{
  10.  */
  11.  
  12. #define EWL_ATTACH(attach) ((Ewl_Attach *) attach)
  13.  
  14. typedef struct Ewl_Attach Ewl_Attach;
  15. struct Ewl_Attach
  16. {
  17.     Ewl_Attach_Type type;
  18.     Ewl_Attach_Data_Type data_type;
  19.  
  20.     void *data;
  21.     void *priv_data;
  22. };
  23.  
  24. /**
  25.  * @def ewl_attach_tooltip_text_set(w, data)
  26.  * Conviencice method to set a tooltip text attachment
  27.  */
  28. #define ewl_attach_tooltip_text_set(w, data) \
  29.     ewl_attach_text_set(w, EWL_ATTACH_TYPE_TOOLTIP, data)
  30.  
  31. /**
  32.  * @def ewl_attach_tooltip_widget_set(w, data)
  33.  * Convience method to set a tooltip widget attachement
  34.  */
  35. #define ewl_attach_tooltip_widget_set(w, data) \
  36.     ewl_attach_widget_set(w, EWL_ATTACH_TYPE_TOOLTIP, data)
  37.  
  38. /**
  39.  * @def ewl_attach_color_set(w, data)
  40.  * Convience method to set a colour widget attachment
  41.  */
  42. #define ewl_attach_color_set(w, data) \
  43.     ewl_attach_other_set(w, EWL_ATTACH_TYPE_COLOR, data)
  44.  
  45. /**
  46.  * @def ewl_attach_color_get(w) 
  47.  * Convience method to get a colour attachment back
  48.  */
  49. #define ewl_attach_color_get(w) \
  50.     ewl_attach_get(w, EWL_ATTACH_TYPE_COLOR)
  51.  
  52. /**
  53.  * @def ewl_attach_name_set(w, data)
  54.  * Convience method to set a widget name attachment
  55.  */
  56. #define ewl_attach_name_set(w, data) \
  57.     ewl_attach_text_set(w, EWL_ATTACH_TYPE_NAME, data)
  58.  
  59. /**
  60.  * @def ewl_attach_name_get(w)
  61.  * Convience method to get a widgets name attachment
  62.  */
  63. #define ewl_attach_name_get(w) \
  64.     ewl_attach_get(w, EWL_ATTACH_TYPE_NAME)
  65.  
  66. void ewl_attach_text_set(Ewl_Widget *w, Ewl_Attach_Type t, const char *data);
  67. void ewl_attach_widget_set(Ewl_Widget *w, Ewl_Attach_Type t, Ewl_Widget *data);
  68. void ewl_attach_other_set(Ewl_Widget *w, Ewl_Attach_Type t, void *data);
  69.  
  70. void *ewl_attach_get(Ewl_Widget *w, Ewl_Attach_Type t);
  71.  
  72. /* 
  73.  * internal stuff 
  74.  */
  75. Ewl_Attach_List *ewl_attach_list_new(void);
  76. void ewl_attach_list_free(Ewl_Attach_List *list);
  77.  
  78. void ewl_attach_list_add(Ewl_Attach_List *list, Ewl_Widget *parent, Ewl_Attach *attach);
  79. void ewl_attach_list_del(Ewl_Attach_List *list, Ewl_Attach_Type type);
  80. void *ewl_attach_list_get(Ewl_Attach_List *list, Ewl_Attach_Type type);
  81.  
  82. Ewl_Attach *ewl_attach_new(Ewl_Attach_Type t, Ewl_Attach_Data_Type dt, void *data);
  83. int ewl_attach_init(Ewl_Attach *attach, Ewl_Attach_Type t, Ewl_Attach_Data_Type dt, void *data);
  84. void ewl_attach_free(Ewl_Attach *attach);
  85.  
  86. /**
  87.  * @}
  88.  */
  89.  
  90. #endif
  91.  
  92.